Speed run of the Half-Life expansion Opposing Force on hard mode in 93 segments, completed on February 12 2005. Available as Divx 640x480 or 320x240 and original recordings as .dem files, which require version 188.8.131.52 of Opposing Force to play. Time includes a half second penalty for some demo recordings beyond the first, because the engine skips a little bit on each load, and to discourage large amounts of demos. Because of the version used, demo recordings could not be continud at level loads and no penalty is added for these demos. Utilizes some scripts for instant 180-degree turning and other things, see end of comments.
First off I'd like to give a thanks to Downup to be the first one to make an OF speedrun. Him, Xeen and a few others were very supportive during the creation of this run. At the end of my comments I included a list of the major scripts I used. If you still have any questions after reading this or just want to comment on the run go to this forum thread
You may notice my title screen covers up the first few seconds of the run and then fades out. This is because when I played OF it starts out completely black and then fades out so I had to run blindly from the first room to the double doors. Since this doesn't show up in the demo I tried to simulate the blackout effect as best I could.
At 1:05 I made the decision to skip the knife, this is because I only would have needed it for quickly destroying four boxes in the sewage drain off system before the orb creature. I was able to destroy these with 2 satchels and getting the extra satchel I needed takes less time than getting the knife. At 1:14 I go right through the electric field. Xeen was the first to find out that this was possible. I concluded how it worked was that there is a kill trigger that goes off about twice a second where the electric field is. The time can vary between kill triggers and sometimes it will almost skip a beat, this is when I made it through.
At 1:27 I needed to avoid the alien slave hit so I'd have 20 armor for the acid part coming up soon. At 1:31 I jammed myself a corner smaller than 90 degrees to avoid taking fall damage. At 1:40 you must trigger a rather long sequence in order to get the door at the top to open, so I'm just waiting on the door for the next 50+ seconds. I took an extra second to grab a battery for the acid part coming up. At 3:14, after I blow up the explosive box, I needed to wait for the cool looking robot to get the hell out of the room; takes about 35 seconds. The acid part occurs at 4:02, here I jump into the acid which does something like 2-3 damage every .03 seconds, when you have armor though this is reduced and rounded down to 1 armor damage and no health loss about every .03 seconds. The acid level was quite low where I landed and I duck immediately after jumping out of it so I'm no longer touching it and I lose only 17 armor. I would take about 5 more seconds to wait for the acid to completely go away.
This boring tram ride is necessary for the next 2 to levels to load in sequence and can't be skipped. At 6:21 I started a triggered sequence which eventually results in the glass breaking, the only way to advance. I grabbed exactly 3 more armor after the lift to be at 6 armor for an up coming grenade jump, which saves something like 40 seconds. Another triggered sequence is triggered at 7:11, the time, not the.. nm. It takes about 30 seconds for the wall to open up. At 7:42 I jump several times while ducking through a small passage to try and keep my speed. The angle of entry is quite sharp so I can't be at full speed when I enter; the red light in the middle makes this even trickier because you must not run into it. This duck jumping through vent trick is done again right afterwards, here it is easy to see how much faster this is than crawling. I crawl through the next short vent at 8:01 because in order to speed jump through it would require doing an extra jump, making a U-turn, and this would ultimately be slower than wall strafing it. Wall strafe: holding forward and strafing against a wall, makes you move 22% faster. At 8:06 I speed jump through another vent, it's too dark to see in the video but this vent is fairly long. At 8:17 I use a button through a wall to start up the fire ball machine; blows up the explosive box I moved and causes many other explosive boxes to explode, making a hole in the ground. I fall though this hole and land on a slope just right as to have it send me off with some extra speed.
At 8:33 I get some speed off a ramp, taking 5 damage, I couldn't afford to take much more. At 8:47 I do a grenade jump off a ladder. The ladder allows you get twice the height of regular jumping if you dual vector up it, so this helps the grenade jump go a bit higher. The boost you get from an explosive is proportional to how much health (not health and armor) you lose. Having 6 armor made me take 71 health damage, which is about the minimum for making the jump. At 9:03 I do a small grenade jump to get over the garbage bin barrier. The jump from the filling cabinet to the vent is not easy since you must duck right away to avoid hitting ceiling and then curve around the upright filling cabinet with the greatly reduced air control from ducking. If you couldn't figure it out, I trigger an event at 9:16 so the door will blow up at 9:28, why can't they blow up the next door like this too? You have to wait on the guy in the funny glasses to finish his dialog before he'll do anything. I stand in just the right place so he'll run all the way towards the door almost. Then I go and collect every item possible while he's torching the door. At 10:10 I make the elevator door close early, you can't do this until the funny glasses guy gets to his spot. Then I kill him for his dessert eagle.
At 10:20 I throw a grenade on the ground so all the aliens that will soon spawn behind me will take cover and not obliterate me. I grab a battery at 10:32 so I'll take 20 less health damage from the grenade jump just ahead. With 30 armor I take about the minimum health loss needed. At 10:39 I trigger this dude's dialog to start and throw a grenade behind him to make him run towards the door I'll be picking him up at later. Those two black opps at 10:47 weren't trained too well at 10:52 I can't grab the dude yet because he's still on his dialog, you can't hear it because I saved after is started. So I throw another grenade at him so he'll run further to where I want him. Then grab him once he's done talking. At 11:08 a triggered event begins, eventually the guy sucking on an unlit cigarette stands up and I grab him asap. For whatever reason my satchel weapon was bugged but I could fix it if I held it out for long enough, I have to do this again later. That poor hornet alien sure was bamboozled.
Starting at 12:15 is one of my favorite parts. I drop a satchel by these two dudes then grab the one with the particularly useful weapon. Then I mortar jump in just the right spot so a black opp will see the mortar through a very small gap between two crates and run somewhere else so she won't kill me later on. I use the lever and detonate the satchel at the same time. This kills the dude who didn't have such a cool weapon, if I didn't kill him like this, when I kill the cool weapon dude he would have killed me. I bludgeon my ally over the head with a pipe wrench because I really want his high recoil gun and I don't think he knows how to fully utilize its capabilities. Up ahead are some nice hallways for the recoil boosting. I use a script to fully take advantage of the m249's boosting capabilities; this can be found in the script section at the end. Without such a script the run would have been maybe 30 seconds longer. At 12:42 I throw a grenade against a curved wall so it will go around the wall and find it's way onto the ground, resting, so a black opp behind a little bunker will take cover and not kill me when I jump through the window.
At 13:05 I touch the ground of this particular platform asap so it will trigger the displacer gun to fall. I have to wait for the displacer to actually be on the ground before I pick it up. At 13:33 I get exactly 30 armor for an up coming mortar jump. I throw the grenade at 13:48 so the scientist will run all the way to his trigger spot. At 14:01 I get to a spot that will trigger the wall to break up open in a few seconds. At 14:20 I fix the bug with the satchel weapon by holding out for long enough. Note the usefulness of dual vectoring on ladders at 15:00. At 15:27 I have to wait a second for a hurt trigger to go away.
I make use of the displacer's secondary at 15:54. I use it at the very start of the new level, it takes you to a small sublevel. Here I save the game, load, then take the portal out of the sublevel. If you load while in a sublevel then take a portal out you will be defaulted to set spot on the map, about the center of the level. If you don't save and load in a sublevel you will go back a spot usually pretty close to where to you used the displacer initially, this varies for each level. This particular displacer shortcut at 15:54 saves about 30 seconds. At 16:30 I use the displacer right before hitting the ground a specific spot. If you displace from this particular spot close to the ground, after going through the portal in the sublevel you will be placed in the vent above from where you displaced. This is about 2 minutes faster than doing the skipped levels as they were intended. This shortcut is still possible without the displacer but is considerably more complicated and takes about 20 seconds longer plus health loss.
At 16:37 I do a mortar jump with the 30 armor I had setup earlier, this only saves 2-3 seconds but was the best way I could use the extra, free health, I would acquire throughout the run. At 16:41 I trigger the door to open to get out of that sewage room, it takes 12 seconds, just enough time to get the 20 health and 20 armor, not all 30 because I'll only want 16 for a mortar jump eventually. That orb creature I bypass at 17:05 obviously has never played goalie. Not sure why Gearbox made him so easy to bypass, you don't even have to do any tricky jumps. I don't get more of boost from the m249 at 17:10 because that gap in the catwalk is placed exactly where I would want to land and skipping it a jump sooner would be too much of a boost. The two hits I take at 17:25 were intentional so I'd have 16 armor for a mortar boost. At 17:46, the very start of a new level, I do another displacer shortcut just like the first one I did. This saves about 20 seconds and costs about 10 for getting the extra cells. At 18:52 I do another displacer trick of this sort, saves about 25 seconds.
Starting at 18:57 is one of my favorite parts. I get as much of a boost as I can from the m249 so I land right before the water where I do a mortar jump, getting a little extra speed from landing on the slope as well. Water slows you down considerably in OF. Then I do some more m249 boosting; get enough speed to ramp slide a slight slope, the smaller the slope the greater your speed needs to be. Then clip this very sketchy brushing problem next to the side of the rock which acts a ramp. No fall damage is suffered. At 19:09 I trigger the black helicopter to start moving. You pretty much have to wait for it to get past a certain point before you can continue or else is will obliterate you. I grab these two health kits while waiting on the helicopter. At 19:20, had I arrived at this spot .1 seconds sooner I would have been owned by the helicopter. The hits I take from the black opps at 19:40 and 19:51 are intentional so I'll be at 16 armor for an up coming mortar jump. At 20:12 I arrive before the hanging crate lets you by, this is the only way to advance; you can't arrive there one crate sooner, not even close. The mortar I fire at 20:15 is so a black opp above will take cover and not shoot me, same for the mortar I fire at 20:20. At 20:21 I had just enough speed to ramp slide that ramp, thus taking no fall damage.
At 20:34 you may notice I'm not trying to go very fast. This is because you have to wait a bit before you can pass through a certain trigger area, or else the trigger will not go off. I set off the trigger at 20:40, had I arrived there .1 seconds sooner the trigger wouldn't have gone off and the final boss, the big green octopus rhino, would never appear. I shoot his eyes pretty much as soon they vulnerable on both the left and right sides all four times, I also shoot the little compartment with the glowing, pink sprite pretty much as soon as it's vulnerable all four times.
The G-man takes so long to say so little and I get quite bored, sorry for the night vision toggling, but this speech isn't very good. I'll paraphrase if you don't want to watch- I've been busy cleaning up this mess; I like you but my employers think you'll leak what happened so we're going to detain you. Hope you enjoyed the run.
Listing of major scripts used:
alias w wait
alias ww "w;w;w;w;w;w;w;w;w;w"
//at 60 fps yawspeed should be value below, at least that's what worked for my machine
alias +M "fps_max 60;-forward;-moveleft;-moveright;-back;w;m_pitch 0;force_centerview;+left;w;-left;+attack"
alias -M "-attack;+left;w;-left;m_pitch .022;fps_max 100;alias -Mswitch -M2"
//grenade jump straight up
alias nj "+use;-forward;-moveleft;-moveright;+lookdown;w;-attack;-lookdown;-use;w;force_centerview;w;w;w;w;w;w;w;w;+duck;+jump;w;-jump;use weapon_m249;ww;-duck"
//running mortar jump to go mostly upwards, adjust pitchdown to change angle (health loss will change as well)
alias mjup "+duck;sensitivity 0;cl_pitchdown 85;+lookdown;w;+attack2;w;-lookdown;force_centerview;sensitivity 12;cl_pitchdown 89.999;-attack2;w;w;w;+jump;w;-jump;use weapon_m249;ww;-duck;"
alias +bhop "+jump;wait;-jump;wait;+jump;wait;-jump;wait;+jump;wait;-jump;wait;+jump;wait;-jump;wait;+jump"
alias -bhop "-jump"